package com.quicklife.util;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
public class IPTimeStamp{
	/**
		取得IP+时间+三位随机数格式字符串，可以用以作为文件上传后的名字以防止同名文件的覆盖	
		来自：《java web开发实战经典》p228
	*/
	private SimpleDateFormat sdf = null;
	private String ip = null;
	public IPTimeStamp(String ip){
	/*
		传入IP地址进行格式化，在jsp中，可以用request.getRemoteAddr()得到访问地址
	*/
		this.ip = ip;
	}
	
	public String getIPTimeRand(){
	/*
		返回IP+时间+三位随机数
	*/
		StringBuffer buf = new StringBuffer();
		if(this.ip != null){
			String s[] = this.ip.split("[\\.:]");
			for(int i = 0; i < s.length; i++){
				buf.append(this.addZero(s[i], 3));			//将不足3位的补足3位
			}
		}
		buf.append(this.getTimeStamp());
		Random r = new Random();
		for(int i = 0; i < 3; i++){
			buf.append(r.nextInt(10));						//加入种子取得10以内的任意数
		}
		return buf.toString();
	}
	
	private String addZero(String str, int len){
	/*
		不满len位的在前面补0
	*/
		StringBuffer s = new StringBuffer();
		s.append(str);
		while(s.length() < len){
			s.insert(0, "0");
		}
		return s.toString();
	}
	
	private String getTimeStamp(){
	/*
		得到时间字符串
	*/
		this.sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
		return this.sdf.format(new Date());
	}
}